package com.bkgy.controller.allprocess.service;


import com.alibaba.fastjson.JSONObject;
import com.bkgy.commom.model.QueryDTO;
import com.bkgy.controller.allprocess.dto.*;
import com.bkgy.controller.allprocess.entity.*;
import com.bkgy.sys.common.entity.ResultData;

import java.time.LocalDate;


public interface AllProcessService {


    ResultData<AllProcessSerchDto> getputhead_month(String timeType, LocalDate date);

    /**
     * getTbyieldtcmDetais，得到1870镀锌线成材率明细表;
     *
     * @param coldCoilId 入口钢卷号
     * @param cglCoilId  出口卷号
     * @param dbegin     开始时间
     * @param dend       结束时间
     * @return AllProcessTbyieldtcmDetais
     */
    ResultData<AllProcessTbyieldtcmDetais> getTbyieldtcmDetais(String coldCoilId, String cglCoilId, String dbegin, String dend);

    /**
     * 1870镀锌线成材率明细表_分页;
     *
     * @param request TbYieldCglEntity实体表
     * @return ResultData
     */
    ResultData getTbyieldtcmDetais_page(TbYieldCglEntity request);


    /**
     * 1630连退线成材率表明细表_分页;
     *
     * @param request TbYieldCal1630Entity实体表
     * @return ResultData
     */
    ResultData getTbyieldcal1630_page(TbYieldCal1630Entity request);

    /**
     * 2150连退线成材率表明细表_分页;
     * @param request TbYieldCal2150Entity实体表
     * @return ResultData
     */
    ResultData getTbyieldcal2150_page(TbYieldCal2150Entity request);


    /**
     * 2280酸轧线成材率表明细表_分页;
     *
     * @param tbYieldTcm2280Entity_request TbYieldTcm2280Entity实体表
     * @return ResultData
     */
    ResultData getTbyieldtcm2280_page(TbYieldTcm2280Entity tbYieldTcm2280Entity_request);

    /**
     * getTbyieldcal2150，得到2150连退线成材率表明细表;
     *
     * @param coldCoilId 入口钢卷号
     * @param calCoilId  出口卷号
     * @param dbegin     开始时间
     * @param dend       结束时间
     * @return AllProcessTbyieldcal2150Details
     */
    ResultData<AllProcessTbyieldcal2150Details> getTbyieldcal2150(String coldCoilId, String calCoilId, String dbegin, String dend);

    /**
     * getTbyieldcal1630，得到1630连退线成材率表明细表;
     *
     * @param coldCoilId 入口钢卷号
     * @param calCoilId  出口卷号
     * @param dbegin     开始时间
     * @param dend       结束时间
     * @return AllProcessTbyieldcal1630Details
     */
    ResultData<AllProcessTbyieldcal1630Details> getTbyieldcal1630(String coldCoilId, String calCoilId, String dbegin, String dend);


    /**
     * getTbyieldtcm2280，得到2280酸轧线成材率表明细表;
     *
     * @param hotCoilId  入口钢卷号
     * @param coldCoilId 出口卷号
     * @param dbegin     开始时间
     * @param dend       结束时间
     * @return AllProcessTbyieldtcm2280Details
     */
    ResultData<AllProcessTbyieldtcm2280Details> getTbyieldtcm2280(String hotCoilId, String coldCoilId, String dbegin, String dend);


    /**
     * getAllprocessIndexDetails，全流程成材率模型首页数据;
     *
     * @param request TbAllpricessIndexEntity
     * @return AllProcessIndexDetails
     */
    ResultData<AllProcessIndexDetails> getAllprocessIndexDetails(TbAllpricessIndexEntity request);

    /**
     * getAllprocessProductRate，产品成材率全流程分析;
     *
     * @param request
     * @return
     */
    ResultData getAllprocessProductRate(TbAllpricessProductEntity request);


    /**
     * 1630重卷单产线成材率表明细表_分页
     *
     * @param request TbYieldRcl1630Entity
     * @return AllProcessIndexDetails
     */
    ResultData<AllProcessIndexDetails> getTbyieldRcl1630_page(TbYieldRcl1630Entity request);

    /**
     * 2150重卷单产线成材率表明细表_分页
     *
     * @param request TbYieldRcl2150Entity
     * @return AllProcessIndexDetails
     */
    ResultData<AllProcessIndexDetails> getTbyieldRcl2150_page(TbYieldRcl2150Entity request);

    /**
     * 1870重卷单产线成材率表明细表_分页
     * @param request TbYieldRcl1870Entity
     * @return AllProcessIndexDetails
     */
    ResultData<AllProcessIndexDetails> getTbyieldRcl1870_page(TbYieldRcl1870Entity request);

    /**
     * 1630产线成材率异常原因客户输入
     * @param request TbYieldCal1630Entity
     */
    ResultData updateAbnormalReason1630(TbYieldCal1630Entity request);

    /**
     * 2150产线成材率异常原因客户输入
     * @param request TbYieldCal2150Entity
     */
    ResultData updateAbnormalReason2150(TbYieldCal2150Entity request);

    /**
     * 1870产线成材率异常原因客户输入
     * @param request TbYieldCglEntity
     */
    ResultData updateAbnormalReason1870(TbYieldCglEntity request);

    /**
     * 2280产线成材率异常原因客户输入
     * @param request TbYieldTcm2280Entity
     */
    ResultData updateAbnormalReason2280(TbYieldTcm2280Entity request);

    /**
     * 1630产线成材率异常原因客户输入_批量
     * @param json JSONObject
     */
    ResultData updateAbnormalReason1630_List(JSONObject json);

    /**
     * 2150产线成材率异常原因客户输入_批量
     * @param json JSONObject
     */
    ResultData updateAbnormalReason2150_List(JSONObject json);

    /**
     * 1870产线成材率异常原因客户输入_批量
     * @param json JSONObject
     */
    ResultData updateAbnormalReason1870_List(JSONObject json);

    /**
     * 2280产线成材率异常原因客户输入_批量
     * @param json JSONObject
     */
    ResultData updateAbnormalReason2280_List(JSONObject json);

    /**
     * 导出1630成材率数据
     * @param queryDTO 查询条件
     */
    void export1630(QueryDTO<TbYieldSearchCondition> queryDTO);


}
